#   Предисловие

#   Оглавление
1.  [Установка Docker](#установка-docker)
2.  [Микросервисы](#микросервисы)
3.  [Сетевые порты](#сетевые-порты)
4.  [Установка k8s](установка-k8s)
---

#   Установка Docker

Процедура установки Docker  сильно  варьируется в зависимости от
используемой операционной  системы.  Docker  доступен  для  всех
основных        платформ     (MacOS,     Linux,  Windows),    а
[документация](https://www.docker.com/products/docker-desktop/)
раскрывает           подробности         этого         процесса

#   Микросервисы

*   [Мартин  Фаулер](https://en.wikipedia.org/wiki/Martin_Fowler_(software_engineer))
    знаменит своими, как правило, очень успешными попытками найти  структуру и систему
    в динамичном, хаотичном мире программирования, архитектуры,  хранения   данных,  и
    особенно в мире сложных,  высоконагруженных,   распределенных   приложений   эпохи
    Интернета. Конечно   же  он   попытался   проанализировать и   упорядочить   волну
    популярности микросервисов.

*   Микросервисы - явление вне рамок известных ранее архитектур, они     не     совсем
    укладываются в стандарты, и довольно разнообразно применяются на практике. Тем  не
    менее, характерные черты микросервисов, используемые Мартином,  очень  хороши  для
    первого, вводного анализа этой архитектуры. Рассмотрим их подробнее:


### Сервисы как компоненты системы
*   Компонент (component) - одна из основополагающих идей в разработке программ.
    Идея проста - компонент отвечает за  определенную  функцию,  интерфейс  API,
    или целый бизнес модуль.
*   Главное - компонент можно убрать из системы, заменив на другой,  со сходными
    характеристиками, без больших изменений для этой системы. Замена компонентов
    целиком встречается  не  так  часто,  но  независимое  обновление  (upgrade)
    компонента без потери работоспособности системы  в  целом  очень  важно  для
    легкости ее обновления и поддержки.
*   Классический пример - качественная библиотека (к примеру, JAR), модуль, или
    пакет, в зависимости от языка, которую можно подключить  и  использовать  в
    своем приложении.
*   Микросервисы - это использование компонентов (зависимостей, библиотек и модулей)
    своего приложения не внутри одного, единого процесса приложения, а запуск их   в
    отдельных, собственных процессах, и доступ к ним не напрямую,  а  через  сетевые
    вызовы          [RESTful API](https://en.wikipedia.org/wiki/REST)             /
    [GRPC](https://en.wikipedia.org/wiki/GRPC).

---

# Сетевые порты

*   Сетевые порты - это     числовые адреса в сети,     
    используемые для идентификации конкретных служб
    или приложений на устройствах в сети. Они играют
    важную роль в передаче данных между устройствами
    через сеть.

*   В компьютерных сетях существуют два типа портов:  TCP 
    (Transmission Control Protocol) и UDP (User Datagram
    Protocol). Каждый из этих    протоколов    использует
    собственный ряд портов для обеспечения  связи   между
    устройствами.

*   Примеры известных портов:

    1.  Порт 80 используется для HTTP (Hypertext Transfer Protocol)
        протокола передачи гипертекста,  который часто используется
        для передачи веб-страниц в Интернете.

    2.  Порт 443 используется для HTTPS (Hypertext Transfer Protocol 
        Secure) - защищенной версии HTTP, которая обеспечивает безопасную передачу данных с использованием шифрования.

    3.  Порт 21 используется для протокола передачи файлов FTP
        (File Transfer Protocol), который позволяет передавать
        файлы между устройствами в сети.

    4.  Порт 25 используется для протокола SMTP (Simple Mail
        Transfer Protocol),     отвечающего     за  отправку
        электронной почты.

---

# Установка k8s

*   В [официальной документации](https://kubernetes.io/ru/docs/tasks/tools/install-kubectl/) подробно описана процедура установки k8s для различных операционных систем

---